<?php

namespace App\Exceptions;

use Exception;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Mockery\Generator\Method;
use Jenssegers\Agent\Agent;
use Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException;

class Handler extends ExceptionHandler
{
    /**
     * A list of the exception types that are not reported.
     *
     * @var array
     */
    protected $dontReport = [
        //
    ];

    /**
     * A list of the inputs that are never flashed for validation exceptions.
     *
     * @var array
     */
    protected $dontFlash = [
        'password',
        'password_confirmation',
    ];

    /**
     * Report or log an exception.
     *
     * This is a great spot to send exceptions to Sentry, Bugsnag, etc.
     *
     * @param  \Exception  $exception
     * @return void
     */
    public function report(Exception $exception)
    {
        parent::report($exception);
    }

    /**
     * Render an exception into an HTTP response.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Exception  $exception
     * @return \Illuminate\Http\Response
     */
    public function render($request, Exception $e)
    {
        $error = $this->convertExceptionToResponse($e);

        if($e instanceof MethodNotAllowedHttpException){
            $data =  [
                'status_code'      => 100001,
                'message'          =>  '请求方式错误',
                'data'             => []
            ];
            return response()->json($data)->setEncodingOptions(JSON_UNESCAPED_UNICODE);
        }

        if( config('app.debug') === false )
        {
          //自定义404页面
        }
        $agent = new Agent();
        $android=$agent->isAndroidOS();
        $iphone=$agent->is('iPhone');

        // if($android||$iphone){
        //     header('location:/m/404.html');
        // }else{
        //     header('location:/404.html');
        // }


        // return;

        // echo "";
        return parent::render($request, $e);
    }
}
